Servers that provide VMs are used by thin clients and are used in cloud computing and the like.
Certain resources such as CPUs (central processing units) and memories are virtually allocated to VMs. However, the amount of resources that the VMs actually use changes according to the conditions of use of software such as operating systems (OS) and business applications running on the OS.
Accordingly, for example, the range of resource allocation that can be actually used by the VMs among the resources provided by the server is set. The range of resource allocation is called a “utilization range.” Thus, the VMs are moved between servers so that the resources that the VMs actually use fall within the utilization range. Moreover, the number of running servers can be adjusted by activating or stopping servers as needed.
For example, VMs are collectively deployed in some servers and other servers are stopped when the utilization of resources actually used by the VMs drops below the utilization range. Conversely, new servers may be activated when the utilization of resources actually used by the VMs exceeds the utilization range. Then, migration is conducted to move VMs to the activated servers.
For example, it can be assumed that an information processing system 100 operates six VMs with virtually allocated CPUs each having an operating frequency of 1 GHz. FIG. 1 schematically illustrates CPU utilization rates of a VM 1 to a VM 6 with virtually allocated CPUs having operating frequencies of 1 GHz. A utilization rate 101 illustrated in FIG. 1 indicates that a VM 1 is operating a CPU with an operating frequency of 1 GHz at a utilization rate of 40%. Similarly, the utilization rates 102, 103, 104, 105, and 106 indicate that a VM2, a VM3, a VM4, a VM5, and a VM6 respectively are also operating CPUs with respective operating frequencies of 1 GHz at respective utilization rates of 40%.
The utilization rate of the information processing system 100 illustrated in FIG. 1 has a CPU with an operating frequency of 2 GHz and can be implemented by using three servers. The CPU utilization rate in this case is schematically illustrated in FIG. 2.
To simplify comparison with FIG. 1, the utilization rates 201 to 203 illustrated in FIG. 2 are based on utilization rates of CPUs with operating frequencies of 1 GHz. If the operating frequency is 2 GHz, the maximum utilization rate of servers 1 to 3 is 200% since the operating frequency is double the 1 GHz operating frequency. Utilization rates 301 to 302 illustrated in FIG. 3 and utilization rates 401 to 403 illustrated in FIG. 4 are the same as the above-mentioned utilization rates.
As illustrated in FIG. 2, the VM 1 and the VM 2 operate in the server 1, the VM 3 and the VM 4 operate in the server 2, and the VM 5 and the VM 6 operate in the server 3 to achieve the information processing system 100 illustrated in FIG. 1. The utilization rates 201, 202, and 203 of the corresponding servers 1, 2, and 3 at this time are 40% (=(40%+40%)÷200%×100).
Moreover, the information processing system 100 illustrated in FIG. 2 can be achieved by using the two servers server 1 and server 2 by moving the VM 3 operating in server 2 to server 1, and by moving the VM 5 and the VM 6 operating in the server 3 to the server 2. In this case the server 3 can be stopped. The CPU utilization rate in this case is schematically illustrated in FIG. 3.
Moreover, the CPU utilization rate in the server 1 illustrated in FIG. 3 is 200% if the utilization rates of the VM 1 and the VM 2 operating in the server 1 illustrated in FIG. 3 both rise to 80% at the same time. In this case, the information processing system 100 illustrated in FIG. 2 can be achieved by using the three servers, server 1 to server 3, by activating the server 3 and moving the VM 2 to the server 3. The CPU utilization rate in this case is illustrated in FIG. 4.
Reducing the number of running servers to lower costs such as electricity costs by conducting the above processing to adjust the CPU utilization rate of the servers 1 to 3 to fall within a certain range is well known in the art.
Related to the above techniques, there is known a CPU control method that attempts to maintain a distribution ratio of specified CPU resources to effectively use real CPUs even when the CPU distribution is uneven in a virtual machine system that distributes CPU resources through the desired allocation of a plurality of virtual machines and runs the virtual machines (see, for example, Japanese Unexamined Patent Application Publication No. 05-324361).
Further, an information processor is known that attempts to effectively reduce the amount of power consumption of an entire computing system according to the usage conditions of real resources (see, for example, Japanese Unexamined Patent Application Publication No. 09-179667).
Further, a computing apparatus resource allocation device is known that allocates independent computing resources for user enterprises and automatically changes the allocation according to loads in real time in a data center (see, for example, Japanese Unexamined Patent Application Publication No. 2002-024192).
However, when the utilization range is set at a low level, the effect of cost reduction is small since the number of running servers cannot be reduced very much. Moreover, when the utilization range is set to a high level, unused resources in the servers are reduced. In this case, there may not be sufficient resources for other VMs to use when the resources used by VMs increase dramatically. As a result, the comparable performance for resources such as CPUs and memories allocated to VMs cannot be obtained. If a Service Level Agreement (SLA) that guarantees a certain quality is established, such performance may be in opposition to the SLA.